Cryptographic algorithms and the protocols that use them require keys (which are based upon random numbers). For example, such keys can be secret/shared keys used by symmetric key algorithms such as Advanced Encryption Standard (AES) and Data Encryption Standard (DES) (used for block or stream encryption) and public/private key pairs used by asymmetric key algorithms such as Riverst, Shamir, Adleman (RSA) and Digital Signature Algorithm (DSA).
Random numbers are created by a random number generator. There are logically two kinds of random number generator: a True Random Number Generator (TRNG) and a Pseudo Random Number Generator (PRNG).
A TRNG can only be built using a HW-based “entropy source” and can produce a nondeterministic sequence of truly random numbers. The TRNG is often used to “seed” software PRNGs and is also known as a Nondeterministic Random Bit Generator (NRBG). The lack of high quality, high performance true TRNGs has resulted in computer system security failures.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments of the claimed subject matter, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art. Accordingly, it is intended that the claimed subject matter be viewed broadly, and be defined only as set forth in the accompanying claims.